Projekt - opis
Projekt
Opis
Projekt powinien być wykonany z użyciem ROS2 i zawierać własnoręcznie
stworzone node’y (lub przynajmniej jeden node). Możliwe i zalecane jest
również użycie zewnętrznych pakietów (np. usb_cam).
Celem projektu jest stworzenie interfejsu do sterowania robotem. Przykładowy proces powinien wyglądać następująco:
- Uruchomić sterownik kamery.
- Uruchomić własny/e node’y do sterowania robotem.
- Uruchomić sterownik robota.
- Zaprezentować działanie interfejsu.
Stworzona paczka ROS wchodząca w skład projektu powinna być opublikowany na GitHubie, z commitami (więcej niż jednym) od wszystkich autorów projektu. Repozytorium musi zawierać plik README.md z krótką dokumentacją paczki (jak zainstalować, uruchomić, itd.).
Wersja podstawowa node’a (ocena = 3.0):
- kliknięcie w punkt w oknie: w zależności od tego, czy punkt znajduje się powyżej środka ekranu czy poniżej, robot mobilny (TurtleBot) porusza się do przodu lub do tyłu.
Możliwe sposoby zwiększenia oceny:
- +0.5: użycie pliku launch, który automatycznie uruchamia wszystkie node’y,
- +0.5: użycie robota UR 5 zamiast TurtleBota (poruszanie ramieniem w górę i w dół),
- +0.5: dockerizacja aplikacji, przygotowanie plug-and-play Docker setup dla ROS z waszą paczką (Dockerfile i skrypt do uruchomienia),
- +0.5: użycie ArUco do sterowania
robotem
- w tej opcji należy uruchomić sterownik kamery (kamera laptopa lub zewnętrzna) lub (jeśli nie masz kamery) użyć danych nagranych rosbagiem,
- wasz node powinien przetworzyć obraz z kamery, aby znaleźć pozycję znacznika ArUco (można go wydrukować lub wyświetlić na smartfonie),
- w zależności od tego, czy środek markera znajduje się powyżej środka obrazu czy poniżej, robot porusza się do przodu lub do tyłu.
W zależności od wybranego robota, sposób sterowania się zmienia. Dla
robota mobilnego publikujemy komendy na topicu /cmd_vel,
natomiast dla robota UR 5 publikujemy komendy na topicu
/scaled_joint_trajectory_controller/joint_trajectory. Dla
manipulatora można obrócić robota wokół pierwszej osi (u podstawy) o
stały kąt, a dla robota mobilnego poruszać się do przodu i do tyłu.
Każda grupa musi osobiście zaprezentować działanie interfejsu oraz przesłać link do repozytorium GitHub.
Przykład demonstracji (uproszczona wersja dla robota UR 5)
